package class_object;

public class ObjectReference {
    static class Car {
        String color;
        String brand;

        Car(String color, String brand) {
            this.color = color;
            this.brand = brand;
        }

        void display() {
            System.out.println(brand + "汽车，颜色：" + color);
        }
    }

    public static void main(String[] args) {
        // 创建对象，reference1引用该对象
        Car reference1 = new Car("红色", "奔驰");
        reference1.display();

        // reference2引用同一个对象
        Car reference2 = reference1;
        reference2.display();

        // 修改reference2引用的对象属性
        reference2.color = "蓝色";

        // reference1引用的对象也发生了变化
        System.out.println("修改后：");
        reference1.display(); // 输出蓝色奔驰
        reference2.display(); // 输出蓝色奔驰

        // 判断两个引用是否指向同一个对象
        System.out.println("reference1 == reference2: " + (reference1 == reference2)); // true

        // null表示没有引用任何对象
        Car reference3 = null;
        // reference3.display(); // 会抛出NullPointerException
    }
}
